6.3.1 UPDATE-Anweisung für mehrere Spalten/Tabellen
In der Realität werden jedoch oft nicht nur einzelne Spalten eines Tabelleneintrages geändert,
sondern mehrere Spalteneinträge. Auch dies ist mit einer einfachen UPDATE-Anweisung
möglich und wird in SQL so geschrieben:
UPDATE tabellenName SET Spalte_3 = Wert1, Spalte_4 = Wert2, ... WHERE Spalte_1 = Wert3
So kann bei einem Umzug neben der Straße auch die Postleitzahl mit einer Abfrage geändert werden.
In den UPDATE-Anweisungen können auch Zusatzinformationen aus anderen Tabellen
genutzt werden. Dazu muss bei der Angabe der Tabelle ein JOIN mit einer zweiten
Tabelle angegeben werden:
UPDATE tabelleName_1
INNER JOIN tabelleName_2
ON tabelleName_1.Spalte_3 = tabelleName_2.Spalte_1
SET tabelleName_1.Spalte_2 = Wert1
WHERE tabelleName_2.Spalte_4 = Wert2
Ein Beispiel in unserer Personalverwaltung könnte dann so aussehen. Wir möchten den Lohn aller Beamten um 10% erhöhen. Wir können uns erst einmal alle Beamten mit folgender Anweisung anzeigen lassen und später noch mal überprüfen:
SELECT beschreibung, name, bruttolohn
FROM tbl_position
INNER JOIN tbl_mitarbeiter
ON tbl_position.position_ID = tbl_mitarbeiter.position
WHERE tbl_position.beschreibung = 'Beamter'
Nun die Änderung des Bruttolohns der Beamten:
UPDATE tbl_position
INNER JOIN tbl_mitarbeiter
ON tbl_position.position_ID = tbl_mitarbeiter.position
SET tbl_mitarbeiter.bruttolohn = tbl_mitarbeiter.bruttolohn*1.1
WHERE tbl_position.beschreibung = 'Beamter'